package com.frank.oj.utils;

import org.springframework.core.annotation.AnnotationUtils;

import java.lang.annotation.Annotation;
import java.lang.reflect.Method;

public class ServiceContextUtils {
     /**
     * 获取指定方法和类中的指定注解，先从method上获取注解，获取不到再从class上获取
     *
     * @param method 方法
     * @param clazz 类
     * @param annotationClass 注解类
     * @param <T> 泛型类型
     * @return 注解对象，如果没有找到则为null
     */
    public static <T extends Annotation> T getAnnotation(Method method, Class<?> clazz, Class<T> annotationClass) {
        T annotation = AnnotationUtils.getAnnotation(method, annotationClass);
        if (annotation == null) {
            annotation = AnnotationUtils.findAnnotation(clazz, annotationClass);
        }
        return annotation;
    }

}